草庐IT

Python str 与 unicode 类型

全部标签

c# - Newtonsoft Json 将值 {null} 转换为类型 'System.Int32' 时出错

执行AJAX请求时出现以下错误:Errorconvertingvalue{null}totype'System.Int32'.Path'[5].tabID',line1,position331.错误出现在我的processRequest(...)的第二行publicvoidProcessRequest(HttpContextcontext){stringstrJson=newStreamReader(context.Request.InputStream).ReadToEnd();Listelements=JsonConvert.DeserializeObject>(strJson);

c# - C# 枚举类型安全吗?

C#枚举类型安全吗?如果不是,会有什么影响? 最佳答案 给出一个稍微不同的答案......虽然从转换的角度来看这些值是类型安全的,但一旦它们被转换它们仍然没有被检查-即enumFoo{A=1,B=2,C=3}staticvoidMain(){Foofoo=(Foo)500;//worksfineConsole.WriteLine(foo);//alsofine-shows500}因此,您应该注意检查值-例如default在switch抛出异常。您还可以通过以下方式检查(对于非[Flags]值):boolisValid=Enum.Is

c# - 找不到类型或命名空间名称 "WebRequestHandler"

我正在尝试使用此处列出的Dropbox.API代码:https://github.com/dropbox/dropbox-sdk-dotnet/tree/master/dropbox-sdk-dotnet/Examples/SimpleTest我将他们的Program.cs复制到我的Program.cs中,而没有对我的解决方案/项目中的其他文件进行其他更改。我得到了Thetypeornamespacename"WebRequestHandler"couldnotbefound.尽管有这个using语句:usingSystem.Net.Http;帮助文本说要添加程序集引用,但我不知道要添

c# - 无法将类型为 'System.Object[]' 的对象转换为 'MyObject[]',这是怎么回事?

场景:我目前正在编写一个层,将3个相似的Web服务抽象为一个可用的类。每个web服务公开一组共享共性的对象。我创建了一组利用共性的中间对象。然而,在我的层中,我需要在Web服务对象和我的对象之间进行转换。在像这样调用Web服务之前,我已经使用反射在运行时创建了适当的类型:publicstaticobject[]CreateProperties(Typetype,IProperty[]properties){//Emptysoreturnnullif(properties==null||properties.Length==0)returnnull;//Checkthetypeisall

c# - 根据子类指定基类抽象方法的返回类型

我有以下结构:abstractclassBase{publicabstractListGet();//Whatshouldbethegenerictype?}classSubOne:Base{publicoverrideListGet(){}}classSubTwo:Base{publicoverrideListGet(){}}我想创建一个抽象方法,返回具体子类的任何类。因此,正如您从示例中看到的那样,SubOne中的方法应该返回List而SubTwo中的方法应该返回List.我在基类中声明的签名中指定什么类型?[更新]感谢您发布的答案。解决方案是使抽象类通用,如下所示:abstrac

c# - 在 .Net/C# 中,null 是强类型的吗?

null有类型吗?空值在内部是如何表示的?以下代码中发生了什么?voidFoo(stringbar){...}voidFoo(objectbar){...}Foo((string)null);编辑:到目前为止,答案并不具体且级别太高。我知道引用类型对象由堆栈上的指针组成,该指针指向堆上的一个位置,其中包含同步块(synchronizedblock)索引、类型句柄和对象的字段。当我将对象的实例设置为null时,堆栈上的指针究竟指向何处?在代码片段中,C#编译器是否只是使用强制转换来决定调用哪个重载,并且没有真的任何null强制转换?我正在寻找了解CLR内部结构的人提供的深入答案。

c# - 您可以重载 Sum 以添加自定义类型吗

我有一个包含货币和金额的Money结构。我希望能够使用linq对列表求和。publicstructMoney{publicstringCurrency{get;set;}publicdecimalAmount{get;set;}publicstaticMoneyoperator+(Moneym1,Moneym2){if(m1.Currency!=m2.Currency)thrownewInvalidOperationException();returnnewMoney(){Amount=m1.Amount+m2.Amount,Currency=m1.Currency};}}鉴于上面的代

c# - 如何在 DataGridViewComboBox 中显示 Enum 类型的成员?

为了在此DatagridViewComboBox中显示ReadAccess枚举成员,我还需要做什么?ReadDataGridViewComboBoxColumn.Items.Clear();ReadDataGridViewComboBoxColumn.Items.AddRange(ReadAccess.None,ReadAccess.Allowed);ReadDataGridViewComboBoxColumn.ValueType=typeof(ReadAccess);这里是设计者生成的关于DataGridView的代码:this.rolesDataGridView.AutoGener

c# - 为什么我们需要在 C# 中类型转换枚举

我有一个像这样的枚举:publicenumTest:int{A=1,B=2}所以在这里我知道我的枚举是一个int类型但是如果我想做如下的事情:inta=Test.A;这行不通。如果我有这样的类(class):publicclassMyTest{publicstaticintA=1;}我可以说,inta=MyTest.A;这里我不需要将A显式转换为int。 最佳答案 SohereIknowmyenumisaninttype不,不是。它有底层int类型,但它是一个单独的类型。哎呀,这就是首先使用枚举的一半意义-您可以将类型分开。当您想要

c# - 为什么要避免使用 foreach 迭代不可变值类型集合?

在编码标准文档中,我发现了这样的说法:Avoidusingforeachtoiterateoverimmutablevalue-typecollections.E.g.Stringarrays.为什么要避免这种情况? 最佳答案 你不应该回避它。您正在阅读的编码标准文档是在胡说八道。设法找到作者,请他解释。除此之外,string是一个引用类型,而数组总是可变的……老实说,这让我担心文档其余部分的质量。还有其他可疑的建议吗?(“不可变”可能指的是值类型而不是集合-事实上,它是模棱两可的是另一个令人担忧的迹象,IMO。)